package POP;

import SMTP.MailBody;
import junit.framework.Assert;

import org.junit.Test;
import java.util.regex.*;

public class popTest {

    String fromPattern = "From: (.*)To: \\[";
    String toPattern = "To: (.*)MIME-Version";
    String subjectPattern = "Subject: =\\?utf-8\\?b\\?(.*)\\?=";
    String textPattern = "charset=\"utf-8\"Content-Transfer-Encoding: base64([^-]*)(--a)?";
    

    //测试正则表达式
    @Test
    public void testRegex(){
//        String res = "Received: from whu.edu.cn (unknown [202.114.64.88])	by newmx44.qq.com (NewMx) with SMTP id 	for <827041735@qq.com>; Sun, 19 Apr 2020 10:49:45 +0800X-QQ-FEAT: ELd9oBCFI5l7rpKT+HzYlsEq7vajbH068JXL/jMlVfwF1kjTB1wCweg86Pdd+	mUbD1gHogvBg5Gy33HvvO3ivOJhLGfkRnR/+M0JBpR0kZP5JzdwyknyyaLtTZo+jl5w+8nT	C/n7i/owTAoq2l81nyx1JqOVH8MPLKsiwkJ0mICrJn3YcusYmsNE2dObOr7+DhJv28boDQ+	RxfQIXX42wqSQZhZxVIbcEsAn7F+yumHgrBNJIPGff6/+Oos1Xw2C9ZAXWITU0yIGJFzde1	dN5uE2/OgJL0PF/TBZg242pUJfKu0XdFTYf00Pbio/SGqnIODqzmNf/ZE=X-QQ-MAILINFO: N5kFcZDRcyD8z0DoGWWGHenShGT79naz8Ke8CeO5ESAbDPsRq7MHpoTDN	QvvtY74VCnX/BIwvbrZ8i0x3maxDmtfie7O6BZJFgPydQDa5pWhfJo1Zd72RiY6I8Lpw6HC	4fz/ze34FAyTlzOzmkItJ6GoupsWy13CtLrp2JWPyR5d+rnZytBJQY2ncfHtIqCsQFbWPMy	3ACMDPo08h8jiHPUEjtw8Fca9MW0eyI4iX+IMX-QQ-mid: mxszb48t1587264584txf1ujz52X-QQ-ORGSender: 2017302580167@whu.edu.cnX-QQ-XMAILINFO: NlKs8xrMcuBm4XOBAvv+Asyuz9KHAcedq21vVujZr1EM8HYm4dazEuOAM5L8zQ	 rWvEXX/qvmkw2zeNEpOada/UieTXTDZdFwt+Yb7HRAEhQIsdE0aLunZskLOGYiBp1gFcOc2dHbz1	 kl0EyrjICmtXm/G3VBVQOcO/onH0HsHfCTWvaDdubJlK1GGkhEd459Lh9ztaZo8nw2OZf69jZaep	 lSam6jJGg+Z/lY8W9UlXsZ7CI1fbRbDDjAFcpDdECeDS1rZhnS/Pw3LUzs1dsERXDAVBXTaGklrE	 6+/f/qG0JmzLXhXKa/VSxBoeToO09MOeUuorwBhpyD1sbts0rlq3FIqZmLqUGfy+y+r6tvRDKDMt	 kUNKgiUaNWfOgYL8RR4DI2/jAipsbOQT9nwF35I2jw2wLRvu9DSZvrpRbeHWMZJaeHOO8ls8cZ8l	 n5DPwU9BGkBTLTW2+TiaejuAfc0dqZLuOxjeuvcBVPZ1sKLevhqsVfiGafGPfH4p9uurTbmBnoGU	 9E1G2scfhJvPRQBHHKi2J0VSWdr6MdqdZZfyCGbsvdlgbV8ekx2ip+KY+ObFYjsWfoWs9GGzatgE	 D9cNBr2JP6cKOwxYspl2Zk3JzdIGwBSsadHnVF81B0FGpUryc9//MeZiFhjtOdi2CMcIFZtfjk+E	 U+XfV9HH57xCLGNIPhUJ+sXTlNScHlWHhsdzyrBwSkfym6PtGKoVSpuJO3V1CbDLT1VL0A/C3XGN	 e+Rhl+PZoio/XihqhA9/6Y9t0KTYCNVyA+ELWWgP5H1iT9KKwkSwRyKg==DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;	d=whu.edu.cn; s=dkim; h=Received:From:To:MIME-Version:Subject:	Content-Type:Date:Message-Id; bh=srP8r/qken4yhol0eFOgcstjjS/WyVD	0+nyQUWs7zaQ=; b=f3BLqu7bu3IygY2Syq6BoJhWvYOk0+0scUDdT3+29mGjpOU	RSS4Njh0T1TUYA/CxHMIrOX0C3FLN0ksOV6E0/bGjjYsscipCSIiA2lPHwHpv9J9	9+5mZRV77YQkCWr/x7/5+VVjQGUKKzlnnuqTHqVKioYQQPIkZrSH3gQ4gs50=Received: from whu.edu.cn (unknown [118.250.30.28])	by email1 (Coremail) with SMTP id AQBjCgBXv_ZHvJte4NN4AA--.45338S2;	Sun, 19 Apr 2020 10:49:44 +0800 (CST)From: 2017302580167@whu.edu.cnTo: [827041735@qq.com]MIME-Version: 1.0Subject: =?utf-8?b?5L2g5aW977yM6LCi5biF5a6H77yM6L+Z5piv5LiA5Liq55Sx6ZmE5Lu255qE5paH5Lu2?=Content-Type:multipart/mixed;boundary=\"a\"Date: 2020-04-19 10:49:47X-CM-TRANSID:AQBjCgBXv_ZHvJte4NN4AA--.45338S2Message-Id:<5E9BBC48.002B51.06138@whu.edu.cn>X-Coremail-Antispam: 1UD129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73	VFW2AGmfu7bjvjm3AaLaJ3UjIYCTnIWjp_UUUrm7k0a2IF6F4UM7kC6x804xWl14x267AK	xVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGw	A2jI8I6cxK6x804I0_KFvE3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWxJVW8Jr	1l84ACjcxK6I8E87Iv67AKxVWxJr0_GcWl84ACjcxK6I8E87Iv6xkF7I0E14v26F4UJVW0	owAac4AC62xK8xCEY4vEwIxC4wAac4AC6xC2jxv24VCSYI8q64vIFxWle2I262IYc4CY6c	8Ij28IcVAaY2xG8wASzI0EjI02j7AqF2xKxwAqx4xG64xvF2IEw4CE5I8CrVC2j2Wl5I8C	rVCF54CYxVAG04kSxc1lY4vaj48v8VA2jI8xMcIj6xIIjxv20xvE14v26r106r15McIj6I	8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lFcxC0VAY	jxAxZF0Ew4CEw7xC0wACY4xI6c02F40Ez4kGawACY4xI64xv4xAvw2CEb4CIw280cs4lw4	CEF2IF47xS0VAv8wAKzVCjr7xvwVAFz4v204v26I0v724lw4CEc2x0rVAKj4xxMxkF7I0E	w4C26cxK6c8Ij28IcwCY02Avz4vE14v_Gr1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x	0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUGVWUWwC20s026x8GjcxK67AKxVWUJVWUGwC2	zVAF1VAY17CE14v26r1Y6r17MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF	4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWrJr0_	WFyUJwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYx	BIdaVFxhVjvjDU0xZFpf9x07bjc_fUUUUU=X-CM-SenderInfo: ysqrljaqsvmiqrwxq4lkxovvfxof0/--aContent-Type: text/html; charset=\"utf-8\"Content-Transfer-Encoding: base645L2g5aW96LCi5biF5a6H77yM5oiR5Lus5Y+R57uZ5L2g5Lik5LiqanNw5paH5Lu2--aContent-Transfer-Encoding:base64Content-type:application/octet-stream; name=\"main.jsp\"PCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC4qIiU+DQo8JUBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiJT4NCjxodG1sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOyI+DQo8aGVhZD4NCiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0ie3sgbGF5LmJhc2Uua2V5d29yZHMgfX0iPg0KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJ7eyBsYXkuYmFzZS5kZXNjcmlwdGlvbiB9fSI+DQogICAgPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCI+DQogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIj4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSI+DQogICAgPHRpdGxlPuWPkeeOsCBMYXl1aSAyMDIwIOW5tOW6puacgOS9s+ahiOS+izwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9yZXMvbGF5dWkvY3NzL2xheXVpLmNzcyI+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9yZXMvY3NzL2dsb2JhbC5jc3MiPg0KICAgIDxzdHlsZT4NCiAgICAgICAgLmhlYWRlcntib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQwNDU1MzsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQwNDU1Mzt9DQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IGNsYXNzPSJmbHktZnVsbCI+DQo8ZGl2IGNsYXNzPSJmbHktY2FzZS1oZWFkZXIiPg0KICAgIDxwIGNsYXNzPSJmbHktY2FzZS15ZWFyIj5QU008L3A+DQogICAgPGEgaHJlZj0iL2Nhc2Uve3sgeWVhciB9fS8iPg0KICAgICAgICA8aW1nIGNsYXNzPSJmbHktY2FzZS1iYW5uZXIiIHNyYz0iLi4vcmVzL2ltYWdlcy9pbnRyby5wbmciIGFsdD0i5ZCM5qCh5Lu75Yqh5YWx5Lqr5LqS5Yqp5bmz5Y+wIj4NCiAgICA8L2E+DQogICAgPCEtLSAgPGRpdiBjbGFzcz0iZmx5LWNhc2UtYnRuIj4NCiAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1iaWcgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InB1c2giPuaPkOS6pOahiOS+izwvYT4NCiAgICAgICAgPGEgaHJlZj0iIiBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1wcmltYXJ5IGxheXVpLWJ0bi1iaWciPuaIkeeahOahiOS+izwvYT4NCg0KICAgICAgICA8YSBocmVmPSJodHRwOi8vZmx5LmxheXVpLmNvbS9qaWUvMTE5OTYvIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9InBhZGRpbmc6IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUiPuahiOS+i+imgeaxgjwvYT4NCiAgICAgIDwvZGl2PiAtLT4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJmbHktbWFpbiIgc3R5bGU9Im92ZXJmbG93OiBoaWRkZW47Ij4NCg0KICAgIDxkaXYgY2xhc3M9ImZseS10YWItYm9yZGVyIGZseS1jYXNlLXRhYiI+DQogICAgPHNwYW4+DQoJICA8YSBocmVmPSIiIGNsYXNzPSJ0YWItdGhpcyI+5YWo6YOoPC9hPg0KICAgICAgPGEgaHJlZj0iIj5JVC/ova/ku7Y8L2E+DQogICAgICA8YSBocmVmPSIiPuekvuWbojwvYT4NCgkgIDxhIGhyZWY9IiI+5a6g54mpPC9hPg0KCSAgPGEgaHJlZj0iIj7kuozmiYvnianlk4E8L2E+DQoJICA8YSBocmVmPSIiPuWunuS5oDwvYT4NCgkgIDxhIGhyZWY9IiI+5a625pWZPC9hPg0KCSAgPGEgaHJlZj0iIj7ogIPnoJQ8L2E+DQoJICA8YSBocmVmPSIiPuiuuuaWhzwvYT4NCgkgIDxhIGhyZWY9IiI+5YW25LuWPC9hPg0KICAgIDwvc3Bhbj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJsYXl1aS10YWIgbGF5dWktdGFiLWJyaWVmIj4NCiAgICAgICAgPHVsIGNsYXNzPSJsYXl1aS10YWItdGl0bGUiPg0KICAgICAgICAgICAgPGxpIGNsYXNzPSJsYXl1aS10aGlzIj48YSBocmVmPSIiPuWFqOmDqDwvYT48L2xpPg0KICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+5oyJ5rWP6KeI6YeP5o6S6KGMPC9hPjwvbGk+DQogICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj7mjInmiKrmraLml6XmnJ/mjpLooYw8L2E+PC9saT4NCiAgICAgICAgICAgIDxsaT48YSBocmVmPSIiPuaMiemFrOmHkeaOkuihjDwvYT48L2xpPg0KICAgICAgICA8L3VsPg0KICAgIDwvZGl2Pg0KDQogICAgPHVsIGNsYXNzPSJmbHktY2FzZS1saXN0Ij4NCiAgICAgICAgPGxpIGRhdGEtaWQ9IjEyMyI+DQogICAgICAgICAgICA8YSBjbGFzcz0iZmx5LWNhc2UtaW1nIiBocmVmPSJkZXRhaWwuanNwIiB0YXJnZXQ9Il9ibGFuayIgPg0KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIuLi9yZXMvaW1hZ2VzL21pc3Npb24ucG5nIiBhbHQ9IuS7u+WKoSI+DQogICAgICAgICAgICAgICAgPGNpdGUgY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBsYXl1aS1idG4tc21hbGwiIG9uY2xpY2s9J2dvRGV0YWlsKCknPuS7u+WKoeivpuaDhTwvY2l0ZT4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDxoMj48YSBocmVmPSJodHRwOi8vZmx5LmxheXVpLmNvbS8iIHRhcmdldD0iX2JsYW5rIj7ku7vliqE8L2E+PC9oMj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmbHktY2FzZS1kZXNjIj4xMDBy5rGC5Yqp5biu5YaZ5LiA5Lu95rWL6K+V5paH5qGj77yM6KaB5rGC5Y+C54Wn5rWL6K+V6K6h5YiS77yIR0I4NTY34oCU4oCUODjvvInmoIflh4bvvIzkvb/nlKh3b3Jk5o6S54mI5qC85byP77yM6K6h6Zmi5a2m5Lmg6L+H6L2v5Lu25bel56iL55qE5ZCM5a2m5LyY5YWI44CCPC9wPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmx5LWNhc2UtaW5mbyI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vdXNlci9ob21lLmh0bWwiIGNsYXNzPSJmbHktY2FzZS11c2VyIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vdHZhMS5zaW5haW1nLmNuL2Nyb3AuMC4wLjExOC4xMTguMTgwLzVkYjExZmY0Z3cxZTc3ZDNucXJ2OGoyMDNiMDNjd2VnLmpwZyI+PC9hPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsYXl1aS1lbGlwIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PHNwYW4gc3R5bGU9ImNvbG9yOiAjNjY2OyI+ZGRs77yaPC9zcGFuPiAyMDIwLzExLzMwPC9wPg0KICAgICAgICAgICAgICAgIDxwPua1j+iniOmHj++8mjxhIGNsYXNzPSJmbHktY2FzZS1udW1zIGZseS1jYXNlLWFjdGl2ZSIgaHJlZj0iamF2YXNjcmlwdDo7IiBkYXRhLXR5cGU9InNob3dQcmFpc2UiIHN0eWxlPSIgcGFkZGluZzowIDVweDsgY29sb3I6ICMwMUFBRUQ7Ij42NjY8L2E+5qyhPC9wPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBmbHktY2FzZS1hY3RpdmUiIGRhdGEtdHlwZT0icHJhaXNlIj7mlLbol488L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biAgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InByYWlzZSI+5bey5pS26JePPC9idXR0b24+IC0tPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaSBkYXRhLWlkPSIxMjMiPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImZseS1jYXNlLWltZyIgaHJlZj0iZGV0YWlsLmpzcCIgdGFyZ2V0PSJfYmxhbmsiID4NCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLi4vcmVzL2ltYWdlcy9taXNzaW9uLnBuZyIgYWx0PSLku7vliqEiPg0KICAgICAgICAgICAgICAgIDxjaXRlIGNsYXNzPSJsYXl1aS1idG4gbGF5dWktYnRuLXByaW1hcnkgbGF5dWktYnRuLXNtYWxsIiBvbmNsaWNrPSdnb0RldGFpbCgpJz7ku7vliqHor6bmg4U8L2NpdGU+DQogICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8aDI+PGEgaHJlZj0iaHR0cDovL2ZseS5sYXl1aS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+5Lu75YqhPC9hPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0iZmx5LWNhc2UtZGVzYyI+MTAwcuaxguWKqeW4ruWGmeS4gOS7vea1i+ivleaWh+aho++8jOimgeaxguWPgueFp+a1i+ivleiuoeWIku+8iEdCODU2N+KAlOKAlDg477yJ5qCH5YeG77yM5L2/55Sod29yZOaOkueJiOagvOW8j++8jOiuoemZouWtpuS5oOi/h+i9r+S7tuW3peeoi+eahOWQjOWtpuS8mOWFiOOAgjwvcD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZseS1jYXNlLWluZm8iPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3VzZXIvaG9tZS5odG1sIiBjbGFzcz0iZmx5LWNhc2UtdXNlciIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3R2YTEuc2luYWltZy5jbi9jcm9wLjAuMC4xMTguMTE4LjE4MC81ZGIxMWZmNGd3MWU3N2QzbnFydjhqMjAzYjAzY3dlZy5qcGciPjwvYT4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGF5dWktZWxpcCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIHN0eWxlPSJjb2xvcjogIzY2NjsiPmRkbO+8mjwvc3Bhbj4gMjAyMC8xMS8zMDwvcD4NCiAgICAgICAgICAgICAgICA8cD7mtY/op4jph4/vvJo8YSBjbGFzcz0iZmx5LWNhc2UtbnVtcyBmbHktY2FzZS1hY3RpdmUiIGhyZWY9ImphdmFzY3JpcHQ6OyIgZGF0YS10eXBlPSJzaG93UHJhaXNlIiBzdHlsZT0iIHBhZGRpbmc6MCA1cHg7IGNvbG9yOiAjMDFBQUVEOyI+NjY2PC9hPuasoTwvcD4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYXl1aS1idG4gIGZseS1jYXNlLWFjdGl2ZSIgZGF0YS10eXBlPSJwcmFpc2UiPuW3suaUtuiXjzwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaSBkYXRhLWlkPSIxMjMiPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImZseS1jYXNlLWltZyIgaHJlZj0iZGV0YWlsLmpzcCIgdGFyZ2V0PSJfYmxhbmsiID4NCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLi4vcmVzL2ltYWdlcy9taXNzaW9uLnBuZyIgYWx0PSLku7vliqEiPg0KICAgICAgICAgICAgICAgIDxjaXRlIGNsYXNzPSJsYXl1aS1idG4gbGF5dWktYnRuLXByaW1hcnkgbGF5dWktYnRuLXNtYWxsIiBvbmNsaWNrPSdnb0RldGFpbCgpJz7ku7vliqHor6bmg4U8L2NpdGU+DQogICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8aDI+PGEgaHJlZj0iaHR0cDovL2ZseS5sYXl1aS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+5Lu75YqhPC9hPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0iZmx5LWNhc2UtZGVzYyI+MTAwcuaxguWKqeW4ruWGmeS4gOS7vea1i+ivleaWh+aho++8jOimgeaxguWPgueFp+a1i+ivleiuoeWIku+8iEdCODU2N+KAlOKAlDg477yJ5qCH5YeG77yM5L2/55Sod29yZOaOkueJiOagvOW8j++8jOiuoemZouWtpuS5oOi/h+i9r+S7tuW3peeoi+eahOWQjOWtpuS8mOWFiOOAgjwvcD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZseS1jYXNlLWluZm8iPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3VzZXIvaG9tZS5odG1sIiBjbGFzcz0iZmx5LWNhc2UtdXNlciIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3R2YTEuc2luYWltZy5jbi9jcm9wLjAuMC4xMTguMTE4LjE4MC81ZGIxMWZmNGd3MWU3N2QzbnFydjhqMjAzYjAzY3dlZy5qcGciPjwvYT4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGF5dWktZWxpcCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIHN0eWxlPSJjb2xvcjogIzY2NjsiPmRkbO+8mjwvc3Bhbj4gMjAyMC8xMS8zMDwvcD4NCiAgICAgICAgICAgICAgICA8cD7mtY/op4jph4/vvJo8YSBjbGFzcz0iZmx5LWNhc2UtbnVtcyBmbHktY2FzZS1hY3RpdmUiIGhyZWY9ImphdmFzY3JpcHQ6OyIgZGF0YS10eXBlPSJzaG93UHJhaXNlIiBzdHlsZT0iIHBhZGRpbmc6MCA1cHg7IGNvbG9yOiAjMDFBQUVEOyI+NjY2PC9hPuasoTwvcD4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYXl1aS1idG4gbGF5dWktYnRuLXByaW1hcnkgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InByYWlzZSI+5pS26JePPC9idXR0b24+DQogICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPSJsYXl1aS1idG4gIGZseS1jYXNlLWFjdGl2ZSIgZGF0YS10eXBlPSJwcmFpc2UiPuW3suaUtuiXjzwvYnV0dG9uPiAtLT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGkgZGF0YS1pZD0iMTIzIj4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJmbHktY2FzZS1pbWciIGhyZWY9ImRldGFpbC5qc3AiIHRhcmdldD0iX2JsYW5rIiA+DQogICAgICAgICAgICAgICAgPGltZyBzcmM9Ii4uL3Jlcy9pbWFnZXMvbWlzc2lvbi5wbmciIGFsdD0i5Lu75YqhIj4NCiAgICAgICAgICAgICAgICA8Y2l0ZSBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1wcmltYXJ5IGxheXVpLWJ0bi1zbWFsbCIgb25jbGljaz0nZ29EZXRhaWwoKSc+5Lu75Yqh6K+m5oOFPC9jaXRlPg0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPGgyPjxhIGhyZWY9Imh0dHA6Ly9mbHkubGF5dWkuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPuS7u+WKoTwvYT48L2gyPg0KICAgICAgICAgICAgPHAgY2xhc3M9ImZseS1jYXNlLWRlc2MiPjEwMHLmsYLliqnluK7lhpnkuIDku73mtYvor5XmlofmoaPvvIzopoHmsYLlj4LnhafmtYvor5XorqHliJLvvIhHQjg1NjfigJTigJQ4OO+8ieagh+WHhu+8jOS9v+eUqHdvcmTmjpLniYjmoLzlvI/vvIzorqHpmaLlrabkuaDov4fova/ku7blt6XnqIvnmoTlkIzlrabkvJjlhYjjgII8L3A+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHktY2FzZS1pbmZvIj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi91c2VyL2hvbWUuaHRtbCIgY2xhc3M9ImZseS1jYXNlLXVzZXIiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly90dmExLnNpbmFpbWcuY24vY3JvcC4wLjAuMTE4LjExOC4xODAvNWRiMTFmZjRndzFlNzdkM25xcnY4ajIwM2IwM2N3ZWcuanBnIj48L2E+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxheXVpLWVsaXAiIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48c3BhbiBzdHlsZT0iY29sb3I6ICM2NjY7Ij5kZGzvvJo8L3NwYW4+IDIwMjAvMTEvMzA8L3A+DQogICAgICAgICAgICAgICAgPHA+5rWP6KeI6YeP77yaPGEgY2xhc3M9ImZseS1jYXNlLW51bXMgZmx5LWNhc2UtYWN0aXZlIiBocmVmPSJqYXZhc2NyaXB0OjsiIGRhdGEtdHlwZT0ic2hvd1ByYWlzZSIgc3R5bGU9IiBwYWRkaW5nOjAgNXB4OyBjb2xvcjogIzAxQUFFRDsiPjY2NjwvYT7mrKE8L3A+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1wcmltYXJ5IGZseS1jYXNlLWFjdGl2ZSIgZGF0YS10eXBlPSJwcmFpc2UiPuaUtuiXjzwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz0ibGF5dWktYnRuICBmbHktY2FzZS1hY3RpdmUiIGRhdGEtdHlwZT0icHJhaXNlIj7lt7LmlLbol488L2J1dHRvbj4gLS0+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9saT4NCiAgICAgICAgPGxpIGRhdGEtaWQ9IjEyMyI+DQogICAgICAgICAgICA8YSBjbGFzcz0iZmx5LWNhc2UtaW1nIiBocmVmPSJkZXRhaWwuanNwIiB0YXJnZXQ9Il9ibGFuayIgPg0KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIuLi9yZXMvaW1hZ2VzL21pc3Npb24ucG5nIiBhbHQ9IuS7u+WKoSI+DQogICAgICAgICAgICAgICAgPGNpdGUgY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBsYXl1aS1idG4tc21hbGwiIG9uY2xpY2s9J2dvRGV0YWlsKCknPuS7u+WKoeivpuaDhTwvY2l0ZT4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDxoMj48YSBocmVmPSJodHRwOi8vZmx5LmxheXVpLmNvbS8iIHRhcmdldD0iX2JsYW5rIj7ku7vliqE8L2E+PC9oMj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmbHktY2FzZS1kZXNjIj4xMDBy5rGC5Yqp5biu5YaZ5LiA5Lu95rWL6K+V5paH5qGj77yM6KaB5rGC5Y+C54Wn5rWL6K+V6K6h5YiS77yIR0I4NTY34oCU4oCUODjvvInmoIflh4bvvIzkvb/nlKh3b3Jk5o6S54mI5qC85byP77yM6K6h6Zmi5a2m5Lmg6L+H6L2v5Lu25bel56iL55qE5ZCM5a2m5LyY5YWI44CCPC9wPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmx5LWNhc2UtaW5mbyI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vdXNlci9ob21lLmh0bWwiIGNsYXNzPSJmbHktY2FzZS11c2VyIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vdHZhMS5zaW5haW1nLmNuL2Nyb3AuMC4wLjExOC4xMTguMTgwLzVkYjExZmY0Z3cxZTc3ZDNucXJ2OGoyMDNiMDNjd2VnLmpwZyI+PC9hPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsYXl1aS1lbGlwIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PHNwYW4gc3R5bGU9ImNvbG9yOiAjNjY2OyI+ZGRs77yaPC9zcGFuPiAyMDIwLzExLzMwPC9wPg0KICAgICAgICAgICAgICAgIDxwPua1j+iniOmHj++8mjxhIGNsYXNzPSJmbHktY2FzZS1udW1zIGZseS1jYXNlLWFjdGl2ZSIgaHJlZj0iamF2YXNjcmlwdDo7IiBkYXRhLXR5cGU9InNob3dQcmFpc2UiIHN0eWxlPSIgcGFkZGluZzowIDVweDsgY29sb3I6ICMwMUFBRUQ7Ij42NjY8L2E+5qyhPC9wPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBmbHktY2FzZS1hY3RpdmUiIGRhdGEtdHlwZT0icHJhaXNlIj7mlLbol488L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biAgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InByYWlzZSI+5bey5pS26JePPC9idXR0b24+IC0tPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaSBkYXRhLWlkPSIxMjMiPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImZseS1jYXNlLWltZyIgaHJlZj0iZGV0YWlsLmpzcCIgdGFyZ2V0PSJfYmxhbmsiID4NCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLi4vcmVzL2ltYWdlcy9taXNzaW9uLnBuZyIgYWx0PSLku7vliqEiPg0KICAgICAgICAgICAgICAgIDxjaXRlIGNsYXNzPSJsYXl1aS1idG4gbGF5dWktYnRuLXByaW1hcnkgbGF5dWktYnRuLXNtYWxsIiBvbmNsaWNrPSdnb0RldGFpbCgpJz7ku7vliqHor6bmg4U8L2NpdGU+DQogICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8aDI+PGEgaHJlZj0iaHR0cDovL2ZseS5sYXl1aS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+5Lu75YqhPC9hPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0iZmx5LWNhc2UtZGVzYyI+MTAwcuaxguWKqeW4ruWGmeS4gOS7vea1i+ivleaWh+aho++8jOimgeaxguWPgueFp+a1i+ivleiuoeWIku+8iEdCODU2N+KAlOKAlDg477yJ5qCH5YeG77yM5L2/55Sod29yZOaOkueJiOagvOW8j++8jOiuoemZouWtpuS5oOi/h+i9r+S7tuW3peeoi+eahOWQjOWtpuS8mOWFiOOAgjwvcD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZseS1jYXNlLWluZm8iPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3VzZXIvaG9tZS5odG1sIiBjbGFzcz0iZmx5LWNhc2UtdXNlciIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3R2YTEuc2luYWltZy5jbi9jcm9wLjAuMC4xMTguMTE4LjE4MC81ZGIxMWZmNGd3MWU3N2QzbnFydjhqMjAzYjAzY3dlZy5qcGciPjwvYT4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGF5dWktZWxpcCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIHN0eWxlPSJjb2xvcjogIzY2NjsiPmRkbO+8mjwvc3Bhbj4gMjAyMC8xMS8zMDwvcD4NCiAgICAgICAgICAgICAgICA8cD7mtY/op4jph4/vvJo8YSBjbGFzcz0iZmx5LWNhc2UtbnVtcyBmbHktY2FzZS1hY3RpdmUiIGhyZWY9ImphdmFzY3JpcHQ6OyIgZGF0YS10eXBlPSJzaG93UHJhaXNlIiBzdHlsZT0iIHBhZGRpbmc6MCA1cHg7IGNvbG9yOiAjMDFBQUVEOyI+NjY2PC9hPuasoTwvcD4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYXl1aS1idG4gbGF5dWktYnRuLXByaW1hcnkgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InByYWlzZSI+5pS26JePPC9idXR0b24+DQogICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPSJsYXl1aS1idG4gIGZseS1jYXNlLWFjdGl2ZSIgZGF0YS10eXBlPSJwcmFpc2UiPuW3suaUtuiXjzwvYnV0dG9uPiAtLT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGkgZGF0YS1pZD0iMTIzIj4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJmbHktY2FzZS1pbWciIGhyZWY9ImRldGFpbC5qc3AiIHRhcmdldD0iX2JsYW5rIiA+DQogICAgICAgICAgICAgICAgPGltZyBzcmM9Ii4uL3Jlcy9pbWFnZXMvbWlzc2lvbi5wbmciIGFsdD0i5Lu75YqhIj4NCiAgICAgICAgICAgICAgICA8Y2l0ZSBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1wcmltYXJ5IGxheXVpLWJ0bi1zbWFsbCIgb25jbGljaz0nZ29EZXRhaWwoKSc+5Lu75Yqh6K+m5oOFPC9jaXRlPg0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPGgyPjxhIGhyZWY9Imh0dHA6Ly9mbHkubGF5dWkuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPuS7u+WKoTwvYT48L2gyPg0KICAgICAgICAgICAgPHAgY2xhc3M9ImZseS1jYXNlLWRlc2MiPjEwMHLmsYLliqnluK7lhpnkuIDku73mtYvor5XmlofmoaPvvIzopoHmsYLlj4LnhafmtYvor5XorqHliJLvvIhHQjg1NjfigJTigJQ4OO+8ieagh+WHhu+8jOS9v+eUqHdvcmTmjpLniYjmoLzlvI/vvIzorqHpmaLlrabkuaDov4fova/ku7blt6XnqIvnmoTlkIzlrabkvJjlhYjjgII8L3A+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHktY2FzZS1pbmZvIj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi91c2VyL2hvbWUuaHRtbCIgY2xhc3M9ImZseS1jYXNlLXVzZXIiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly90dmExLnNpbmFpbWcuY24vY3JvcC4wLjAuMTE4LjExOC4xODAvNWRiMTFmZjRndzFlNzdkM25xcnY4ajIwM2IwM2N3ZWcuanBnIj48L2E+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxheXVpLWVsaXAiIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48c3BhbiBzdHlsZT0iY29sb3I6ICM2NjY7Ij5kZGzvvJo8L3NwYW4+IDIwMjAvMTEvMzA8L3A+DQogICAgICAgICAgICAgICAgPHA+5rWP6KeI6YeP77yaPGEgY2xhc3M9ImZseS1jYXNlLW51bXMgZmx5LWNhc2UtYWN0aXZlIiBocmVmPSJqYXZhc2NyaXB0OjsiIGRhdGEtdHlwZT0ic2hvd1ByYWlzZSIgc3R5bGU9IiBwYWRkaW5nOjAgNXB4OyBjb2xvcjogIzAxQUFFRDsiPjY2NjwvYT7mrKE8L3A+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGF5dWktYnRuIGxheXVpLWJ0bi1wcmltYXJ5IGZseS1jYXNlLWFjdGl2ZSIgZGF0YS10eXBlPSJwcmFpc2UiPuaUtuiXjzwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz0ibGF5dWktYnRuICBmbHktY2FzZS1hY3RpdmUiIGRhdGEtdHlwZT0icHJhaXNlIj7lt7LmlLbol488L2J1dHRvbj4gLS0+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9saT4NCiAgICAgICAgPGxpIGRhdGEtaWQ9IjEyMyI+DQogICAgICAgICAgICA8YSBjbGFzcz0iZmx5LWNhc2UtaW1nIiBocmVmPSJkZXRhaWwuanNwIiB0YXJnZXQ9Il9ibGFuayIgPg0KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIuLi9yZXMvaW1hZ2VzL21pc3Npb24ucG5nIiBhbHQ9IuS7u+WKoSI+DQogICAgICAgICAgICAgICAgPGNpdGUgY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBsYXl1aS1idG4tc21hbGwiIG9uY2xpY2s9J2dvRGV0YWlsKCknPuS7u+WKoeivpuaDhTwvY2l0ZT4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDxoMj48YSBocmVmPSJodHRwOi8vZmx5LmxheXVpLmNvbS8iIHRhcmdldD0iX2JsYW5rIj7ku7vliqE8L2E+PC9oMj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmbHktY2FzZS1kZXNjIj4xMDBy5rGC5Yqp5biu5YaZ5LiA5Lu95rWL6K+V5paH5qGj77yM6KaB5rGC5Y+C54Wn5rWL6K+V6K6h5YiS77yIR0I4NTY34oCU4oCUODjvvInmoIflh4bvvIzkvb/nlKh3b3Jk5o6S54mI5qC85byP77yM6K6h6Zmi5a2m5Lmg6L+H6L2v5Lu25bel56iL55qE5ZCM5a2m5LyY5YWI44CCPC9wPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmx5LWNhc2UtaW5mbyI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vdXNlci9ob21lLmh0bWwiIGNsYXNzPSJmbHktY2FzZS11c2VyIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vdHZhMS5zaW5haW1nLmNuL2Nyb3AuMC4wLjExOC4xMTguMTgwLzVkYjExZmY0Z3cxZTc3ZDNucXJ2OGoyMDNiMDNjd2VnLmpwZyI+PC9hPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsYXl1aS1lbGlwIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PHNwYW4gc3R5bGU9ImNvbG9yOiAjNjY2OyI+ZGRs77yaPC9zcGFuPiAyMDIwLzExLzMwPC9wPg0KICAgICAgICAgICAgICAgIDxwPua1j+iniOmHj++8mjxhIGNsYXNzPSJmbHktY2FzZS1udW1zIGZseS1jYXNlLWFjdGl2ZSIgaHJlZj0iamF2YXNjcmlwdDo7IiBkYXRhLXR5cGU9InNob3dQcmFpc2UiIHN0eWxlPSIgcGFkZGluZzowIDVweDsgY29sb3I6ICMwMUFBRUQ7Ij42NjY8L2E+5qyhPC9wPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biBsYXl1aS1idG4tcHJpbWFyeSBmbHktY2FzZS1hY3RpdmUiIGRhdGEtdHlwZT0icHJhaXNlIj7mlLbol488L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9ImxheXVpLWJ0biAgZmx5LWNhc2UtYWN0aXZlIiBkYXRhLXR5cGU9InByYWlzZSI+5bey5pS26JePPC9idXR0b24+IC0tPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvbGk+DQogICAgPC91bD4NCg0KICAgIDwhLS0gPGJsb2NrcXVvdGUgY2xhc3M9ImxheXVpLWVsZW0tcXVvdGUgbGF5dWktcXVvdGUtbm0iPuaaguaXoOaVsOaNrjwvYmxvY2txdW90ZT4gLS0+DQoNCiAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ibGF5cGFnZS1tYWluIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYXlwYWdlLWN1cnIiPjE8L3NwYW4+DQogICAgICAgICAgICA8YSBocmVmPSIiPjI8L2E+PGEgaHJlZj0iIj4zPC9hPg0KICAgICAgICAgICAgPGEgaHJlZj0iIj40PC9hPg0KICAgICAgICAgICAgPGEgaHJlZj0iIj41PC9hPg0KICAgICAgICAgICAgPHNwYW4+4oCmPC9zcGFuPg0KICAgICAgICAgICAgPGEgaHJlZj0iIiBjbGFzcz0ibGF5cGFnZS1sYXN0IiB0aXRsZT0i5bC+6aG1Ij7lsL7pobU8L2E+DQogICAgICAgICAgICA8YSBocmVmPSIiIGNsYXNzPSJsYXlwYWdlLW5leHQiPuS4i+S4gOmhtTwvYT4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KDQo8c2NyaXB0IHNyYz0iLi4vcmVzL2xheXVpL2xheXVpLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQ+DQogICAgbGF5dWkuY2FjaGUucGFnZSA9ICdjYXNlJzsNCiAgICBsYXl1aS5jYWNoZS51c2VyID0gew0KICAgICAgICB1c2VybmFtZTogJ+a4uOWuoicNCiAgICAgICAgLHVpZDogLTENCiAgICAgICAgLGF2YXRhcjogJy4uL3Jlcy9pbWFnZXMvYXZhdGFyLzAwLmpwZycNCiAgICAgICAgLGV4cGVyaWVuY2U6IDgzDQogICAgICAgICxzZXg6ICfnlLcnDQogICAgfTsNCiAgICBsYXl1aS5jb25maWcoew0KICAgICAgICB2ZXJzaW9uOiAiMy4wLjAiDQogICAgICAgICxiYXNlOiAnLi4vcmVzL21vZHMvJyAvL+i/memHjOWunumZheS9v+eUqOaXtu+8jOW7uuiuruaUueaIkOe7neWvuei3r+W+hA0KICAgIH0pLmV4dGVuZCh7DQogICAgICAgIGZseTogJ2luZGV4Jw0KICAgIH0pLnVzZSgnZmx5Jyk7DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4=--aContent-Transfer-Encoding:base64Content-type:application/octet-stream;"; 
//        System.out.println(regixPattern(fromPattern, res));
//        System.out.println(regixPattern(toPattern, res));
//        System.out.println(regixPattern(subjectPattern, res));
//        System.out.println(regixPattern(textPattern, res).replace("--a",""));
    }

    private String regixPattern(String pattern, String res) {
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(res);
        if (m.find()){
            return m.group(1);
        }
        else
            return "NO MATCH";
    }

    
    //测试pop3接收
    @Test
    public void testPop(){
        ReceiveController rec = new ReceiveController();
        PopMailServer ps = new PopMailServer("pop.qq.com","110");
        MailBody mb2 = new MailBody();
        mb2.setSendUser("827041735@qq.com");
        mb2.setSendUserPwd("---");
        PopResult result = rec.receiveMail(ps,mb2);
        for(PopMail popMail:result.getMails()){
            System.out.println(popMail);
        }
    }
    
    //测试删除
    @Test
    public void testDel() {
    	ReceiveController rec = new ReceiveController();
    	PopMailServer ps = new PopMailServer("pop.qq.com","110");
        MailBody mb2 = new MailBody();
        mb2.setSendUser("827041735@qq.com");
        mb2.setSendUserPwd("---");
        rec.receiveMail(ps,mb2);
    	Assert.assertEquals(true, rec.deleteMail(1));
    }
}
